Материалы
10 лет назад
Вытаскивание моделей из других игр
Полное руководство по выдиранию 3D пространства из игр работающих на 6/8/9 DirectX, при помощи программы 3D Ripper DX
Риппинг - cкриншот игры, но в 3D, захвачено будет всё, что видно на данный момент на экране в виде фрейма + текстуры в dds и файлы шейдеров.
3D Ripper DX - та самая прога, которая давно уже не обновлялась, но всё равно пользуется большим спросом у модостроителей. На данный момент версия 1.8.2
Что нам понадобится
Microsoft Windows XP SP3
3D Ripper DX 1.5 - 1.8.2 версий СКАЧАТЬ
Autodesk 3ds Max 2009 / 2010 / 2011
"Бесплатная" версия игры или что-бы запускалась сразу с exe без всяких лаунчеров, Steam окон и.т.п ! (DX 6/8/9) . (возможен вариант глобального мониторинга в случае со Steam).
Скрипт для 3ds max для восстановления координат текстур на модельках - UV Repair Tools.
Немного мозгов и изобретательности...
Прога TexMod (пока не описана в этом туторе)
Adobe Photoshop
XnView (или др. просмотрщик с поддержкой *.dds файлов)
Зачем нам именно XP и 3D Ripper DX разных версий?
XP нам нужна чисто из за того, что она древняя, как эта прога и они работают в единой гармонии. Да и процессы там не нагружаются дополнительными опциями.
Разные версии 3D Ripper DX - Даже на XP эта программа не всегда работает корректно, всё происходит из за того, что разные движки игр работают по разному, например некоторые игры вообще не запускаются или вылетают при нажатии захвата фрейма. Другие нормально запускаются, но у них, как ни странно, не появляется надписи, что игра готова к риппингу. Короче, очень много всяких премудростей.
Главное окно программы
Для тех, кто в танке, расписываю всё подробно:
Please select DirectX 6/8/9/ app... - Укажите путь до исполняемого exe игры
Command Line - параметры запуска игры (если они сущестуют) например -dev.
Capture key - кнопка захвата фрейма
Wireframe mode - режим wireframe (не рекомендуется использовать)
Disable texures - отключить отображение текстур (не рекомендуется использовать)
Capture all shaders / all texures - сохранение всех шейдеров / текстур которые есть в памяти, а не только используемые в фрейме.
Force windowed mode - запуск в окне (не рекомендуется использовать)
Disable shader model 3.0 - Отключение продвинутых шейдеров (не рекомендуется использовать)
Also capture to obj - захват фрейма не только в стандартном формате но и в формате OBJ (не рекомендуется использовать) Захват в формате OBJ вам ничего хорошего не даст:
1 - захват происходит чуть ли не в 3 раза дольше
2 - импорт формата OBJ занимает очень много оперативной памяти, если фрейм большой то можете получить тупо ошибку и всё.
3 - большой вес и ещё множество больших минусов которые я укажу ниже.
4 - obj не сохраняет координаты текстур.
Кнопки
Start global system monitoring - запуск проги в фоновом режиме (только для XP). Программа старается встраиваться во все 3D приложения запущенные на компе. Режим полезен для игр в которых запуск осуществляется через лаунчер, а не на прямую. Глобальный мониторинг надо запустить перед запуском самой игры !
Launch - сворачивание программы и запуск игры
Итак вот мы и добрались до самого тутора. Для начала давайте оценим вашу игру, она должна запускаться сразу с exe - самый лучший вариант. Если же уж совсем припёрло то можно попробовать рипнуть и Steam версию игры или которая запускается с лаунчера, как например GTA IV, но с здесь уже намного больше гемора. Т.к. запуск игры сразу с exe не требует разъяснения, я подробно остановлюсь на запуске Steam игры.
Нажимаем кнопку, подтверждаем, что мы не нубы и поняли, что надо выключить всё, что помешает глобальному мониторингу.
Для самой игры вы должны создать "особо благоприятную среду" т.е. отключаем всякие проги типа Fraps, скриншотилки и всё, что может внедриться в процесс игры. Далее нам надо "обезвредить" сам Steam - отключаем оверлейную панель. Для особо тупых рассказываю: в библиотеке правой кнопкой мыши щёлкаем по игре - свойства - общие - убрать галочку "Вкл. сообщество Steam в игре" - Закрыть.
Для начала ставим самую посл. версию риппера (1.8.1). Указываем папки для текстур, фреймов и шейдеров. Указываем желаемые кнопки и доп. опции. Настоятельно не рекомендую использовать насильное отключение шейдеров 3.0 или захват ещё и в OBJ из за этих функций игра скорее всего вылетит. Так-же не злоупотребляйте Wireframe mode или Disable texures.
Итак, запускаем глобальный системный мониторинг, запускаем саму игру. Ждём загрузки и в прямом смысле молимся что-бы в левом верхнем углу появилась вот такая надпись:
Конечно, появление этой надписи ещё не победа над игрой но и не полный феил. Загрузите сохранение игры или что там есть... Убедитесь что игра работает в "рабочем режиме" т.е. вы можете играть в неё и в углу висит эта надпись. Если же что-то из выше сказанного не получилось поэксперементируйте с 1.8 и 1.7 если же и эти вполне новые версии не помогут попробуйте версию 1.5 лично у меня с ней вообще ничего не запустилось корректно.
Для "бесплатных" версий игр всё намного проще - указываете exe игры и стартуете с кнопки Launch, а далее по схеме рассказаной выше... т.е. пробуем с другими версиями проги. Не забываем что старые версии поддерживают только 8 и 9 DX.
Премудрости
Перед снимком надо учитывать некоторые правила которые помогут получить максимально качественный снимок 3D пространства игры !
Встаньте строго параллельно к снимаемому объекту. Ориентируйтесь по стенам помещения, по домам, постройкам или что там ещё есть... если собираетесь рипнуть целую локацию.
Установите по возможности камеру параллельно объектам, это тоже поможет сделать более ровный снимок.
Посторайтесь что-бы снимаемая локация была полностью в поле видимости (здесь разумеется в выйгрыше те кто с широкоформатным монитором). Во многих играх окружение сразу же выгружается и некоторые объекты вы уже не увидите на снимке.
По возможности создайте несколько снимков с разных ракурсов или на других локациях игры. Это пожет при выправлении текстур и выборе лучшего варианта снимка.
Мы нажали кнопку "Сделать снимок"
Так вот, встали как надо, установили камеру и готовы нажать сделать снимок. Жмём ! В левом верхнем углу появилась панелька на которой написано что-то вроде: сейчас производится снимок, это займёт примерно 5 минут и ниже полный путь к создаваемому снимку.
Да, для снимка некоторых современных игр требуется весьма значительное время. Например когда я тестировал на NFS Hot Pursuit на каждый снимок уходило примерно по 3,5 минуты, а то и даже 5 минут !
"Переваривание" полученного снимка.
Мучались, мучались и вот у нас есть снимок в формате 3dr и пачка текстур в формате DDS. Что-же дальше делать ? А вот что: надеюсь вы сообразили как поставить плагин импорта 3dr, для полного комплекта вам ещё понадобиться фиксилка координат текстур. Кидаем uv-repair-tools.msв папку ...3ds Max 2010\Scripts\. Запускаем 3ds max, жмём "импорт" и указываем наш снимок.
С начала нам предложат указать параметры импорта:
Лучше всего тут вообще ничего не трогать и нажать ок. Но об одной полезной опции я расскажу подробнее, называется она "Recommended values".
Здесь может быть всего один рекомендуемый параметр, что даже очень хорошо - выбираем его и жмём ок. Но бывает, что рекомендуемых параметров 2, а то 4. Это происходит, если снимок таки не снимался по правилам, которые я описал выше. Из за этого придётся импортировать данный снимок столько раз, сколько есть рекомендуемых параметров.
Короче говоря импортируете снимок и смотрите что он из себя представляет. Вдруг он сплюснут по высоте или ширине, может даже вытянут по диагонали или самое смешное можно увидеть, что весь снимок в прямом смысле снимок. т.е. уже не 3D, а практически плоская поверхность. Если видите такое смело жмите reset и импортируйте снимок уже с другим рекомендуемым параметром.
Для начала выбирайте первый рек. параметр, если все не подошли то оставьте эту опцию не выбранной.
Ниже показан пример неудачного, плоского импорта:
А вот профессионально сделанный импорт:
Ну вот мы и импортировали своё творение... Удачно ? Тогда идём дальше.... Постарайтесь выровнять ваш рип если он таки получился не очень строго по осям координат, помните что центр координат это как раз точка снимка. Сохраните только в формат *.max Это очень важный момент т.к. этот формат сохраняет совершенно всё включая дополнительные координаты текстур и прочую дрянь... Сохраните и сбросте 3ds max (reset). Откройте только-что сохранённый фрейм, скорее всего вам предложат указать папку с текстурами, укажите ему папку с получившимися после рипа dds файлами. Если повезёт все текстуры сразу встанут на свои места, а если нет можете увидеть или везде нормалеи место текстур или вообще кое где растянутые по кривым координатам текстуры.
Нам повезло с рипом
Если все текстуры сразу встали на свои места вам остаётся просто вырезать ненужное и править сам меш.
Нам не очень повезло с рипом
Вместо практически всех текстур видны нормали но они натянуты правильно, это пол беды, просто надо будет долго и муторно просматривать все рипнутые текстуры (а их бывает по 700 и более) и пробовать применять на меш. Для этого дела я рекомендую использовать прогу IrfanView, она заодно показывает какие текстуры вообще не пригодны для использования т.е. он напишет ошибка декодирования, а в браузере зачёркнутый круг место превью.
Какие-же мы неудачники...
Очень подробно я разберу самый тяжёлый случай с которым мне пришлось работать. Я рипал игру Saints Row The Third. Добрая половина текстур лежит на разных UV координатах, пространство рипается очень криво, текстуры хорошего качества только на персах и оружии. Ну и самое плохое - у игры есть какие-то лоды, которые естественно то-же рипаются и в итоге получается всё дублированное да и ещё с кривыми координатами. Как же всё это фиксить ? Да не очень и сложно, после долгих поисков я нашёл скриптик для 3ds max называемый UV Repair Tools.
Фиксинг координат текстур
Разберём как-же восстанавливать координаты, координаты по описанию автора скрипта могут лежать на других UV координатах. Его скрипт как раз перенаправляет 3ds max на нужные координаты. Для примера я возьму рипнутого npc из SR3.
Слева кривые координаты сразу после импорта, а справа уже пофиксенные. Результат как говориться, на лицо.
Всё что нужно делать это просто выбрать 1 из мешей персонажа и жать в скрипте поочерёдно кнопки пока не увидите что текстуры встали на место. То-же самое проделываем с оставшимися мешами. Но скорее всего может оказаться что на 1 модели персонажа везде одинаковый канал и в последствии можно применить кнопку ко всем мешам сразу.
Важно: не нажимайте одну и ту-же кнопку 2 раза, это приведёт к вылету 3ds max
Важно: в случае, например, с sr3, есть дублированные меши, так-что придётся очень внимательно смотреть, какой меш выбран, потому-что они сливаются и можно не заметить, что текстуры выровнялись. (На скрине скрытый персонаж из Saints Row 3)
Как запустить скрипт?
Скрипт запускается очень просто: жмём MAXScript - Run Script и выбираем наш скрипт.
Источник: http://steamcommunity.com/sharedfiles/filedetails/?id=242495793
Комментарии пользователей сайта:
у меня с первого раза получилось. пробовал на сталкер ТЧ
винда 7-ка. и текстурки ровно легли
Сай просто супер!
Спасибо за статьи
Степан
А вот профессионально сделанный импорт: ?????
Скорее сделанный снимок-рип, а импорт просто с правильными параметрами.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: